[批处理]批量将文件名更名为其上级目录名

您所在的位置:网站首页 批量删除子文件夹 保留文件至上级目录 [批处理]批量将文件名更名为其上级目录名

[批处理]批量将文件名更名为其上级目录名

2024-07-12 00:06| 来源: 网络整理| 查看: 265

前言

今天从网上下载了点ASP.NET的视频,但是由于是免费的,所以有很多垃圾信息

更讨厌的是,每个文件名也都有非常长的一大长串垃圾广告,需要批量删除这些文件名中的广告字符串

如图:

目的

要做一个程序来批量修改文件名,将一个文件夹下所有的文件的文件名,修改为其上级目录的名字

注意不是修改更名为同一级目录名,而把自己的名字更名为自己所在的上一级目录的名字

如上图,目的是把每个视频文件改名为其所在目录名

使用方法

把要执行的包含所有文件的总文件夹拖动到bat中,会显示执行效果,如果确认则真正执行

处理完成后效果图:

所有文件都更名为其上级目录名

注意

1,当文件夹内有多个文件,且扩展名相同,则会发生文件名冲突错误,会导致从当前文件夹内从第二文件起之后的文件都不更名

请自行编辑文件过滤信息,以保证每个文件夹下被更名文件都是唯一的

2,当文件名中含有特殊字符时。如! 或&符号等会导致更名失败,可以先执行以下命令

for /f "delims=" %i in ('dir /s /b /a:-d 【要处理文件的目录】\*.*') do @ren "%i" "a%~xi"

先把所有文件的文件名都更名为任意字符,然后再批量修改即可

 

批处理代码,保存至bat文件中运行即可:

@echo off :start setlocal enabledelayedexpansion set isrun=n echo 请把包含要处理的文件的[文件夹]拖动到此处,回车确定 set dir=n&set /p dir= if "%dir:"=%"=="n" cls&goto start cls&echo ==================================== :run for /f "delims=" %%i in ('dir /s /b /a:-d %dir%\*.*') do ( set full=%%~dpnxi set exten=%%~xi set path=%%~dpi set path=!path:~0,-1! for /f "delims=" %%j in ("!path!") do set path=%%~nj if /i "!isrun!"=="n" ( echo ren "!full!" "!path!!exten!" ) else ( ren "!full!" "!path!!exten!" echo 更名为:"!path!!exten!" ) ) echo ==================================== if /i "%isrun%"=="n" ( echo 即将执行以上操作,是否执行[Y/N] set isrun=n&set /p isrun= if /i "!isrun!"=="y" ( goto run ) else ( cls&goto start ) ) else ( echo.&echo 更名完成! echo 任意键返回&pause>nul&cls&goto start ) View Code

——原文发表于2012-7-24 12:26

如果您认为本文对得起您所阅读他所花的时间,欢迎点击右下角↘ 推荐。您的支持是我继续写作最大的动力,谢谢

作者:沧海月明 出处:http://www.cnblogs.com/xxcanghai/ 本文地址:http://www.cnblogs.com/xxcanghai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3